//  @ Project : GagalPanen
//  @ File Name : movingcreature.hpp
//  @ Date : 3/9/2011
//  @ Author : 
//
//


#if !defined(_MOVINGCREATURE_H)
#define _MOVINGCREATURE_H

#include "creature.hpp"
#include "direction.hpp"

class MovingCreature : public Creature {
public:
  MovingCreature(GameInterface* game, Cell* cell);
  virtual void resetPosition() = 0;
  bool canMove();
  Direction getDirection();
  bool isSteppable();
  void move();
  void setDirection(Direction dir);
  void turnLeft();
  void turnRight();
  void advanceDay();
  void advanceTime();
  bool isSteppable();
private:
  Direction direction_;
  MoveableMap* moveable_map_;
};

#endif  //_MOVINGCREATURE_H
